Enum (enumeration) হল একটি বিশেষ ধরনের class যা একটি নির্দিষ্ট সংখ্যক কনস্ট্যান্ট ভ্যালু ধারণ করে। Java 5 থেকে enum প্রবর্তিত হয়েছে এবং এটি java.lang প্যাকেজে অন্তর্ভুক্ত। Enum ব্যবহার করা হয় বিভিন্ন প্রকারের কনস্ট্যান্ট (যেমন দিন, মাস, ট্রান্সপোর্ট মুড ইত্যাদি) ম্যানেজ করতে এবং কোডে এর ব্যবহার আরও স্পষ্ট, নিরাপদ ও সুসংগঠিত করতে।
Enum কি?
Enum একটি স্পেশাল ক্লাস যার মধ্যে পূর্বনির্ধারিত কনস্ট্যান্ট ভ্যালু থাকে, এবং এগুলি সাধারণ ক্লাসের মতো ফিল্ড, মেথড, কন্সট্রাক্টর ইত্যাদি ধারণ করতে পারে। Enum ব্যবহারের মাধ্যমে আপনি কনস্ট্যান্ট ভ্যালুগুলিকে আরও সুসংগঠিত এবং নিরাপদভাবে পরিচালনা করতে পারেন, এবং type-safe কনস্ট্যান্ট ব্যবহার নিশ্চিত করতে পারেন।
Enum ক্লাসের মৌলিক বৈশিষ্ট্য:
- Type Safety: Enum-এর কনস্ট্যান্টগুলির ধরন নিরাপদ থাকে, অর্থাৎ আপনি ভুল কনস্ট্যান্ট ব্যবহার করতে পারবেন না।
- Predefined Constants: Enum ব্যবহার করার মাধ্যমে আপনি একটি নির্দিষ্ট সংখ্যক কনস্ট্যান্টের তালিকা তৈরি করতে পারেন।
- Methods and Fields: Enum ক্লাসের মধ্যে ফিল্ড এবং মেথডও থাকতে পারে।
- Ordinal Value: Enum কনস্ট্যান্টের একটি অবস্থিত মান (ordinal) থাকে যা কনস্ট্যান্টের অবস্থান বোঝায়।
Enum এর Syntax:
enum EnumName {
CONSTANT1, CONSTANT2, CONSTANT3; // Enum constants
}
Enum এর মেথডসমূহ:
values() Method:
values()মেথডটি সমস্ত Enum কনস্ট্যান্টগুলির একটি অ্যারে রিটার্ন করে। এটিEnumক্লাসের একটি অ্যাবস্ট্রাক্ট মেথড যা প্রতিটি Enum ক্লাসে ডিফল্টভাবে উপস্থিত থাকে।- এই মেথডটি সাধারণত for-each লুপে সমস্ত কনস্ট্যান্টের উপর অপারেশন করার জন্য ব্যবহৃত হয়।
Syntax:
public static EnumName[] values()Example:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } public class EnumExample { public static void main(String[] args) { for (Day day : Day.values()) { System.out.println(day); } } }Output:
MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAYvalueOf() Method:
valueOf()মেথডটি একটি স্ট্রিং ইনপুট নিয়ে, সেই স্ট্রিংয়ের সাথে মেলে এমন Enum কনস্ট্যান্ট রিটার্ন করে। যদি স্ট্রিংটি কোন Enum কনস্ট্যান্টের সাথে মেলে না, তবে এটি IllegalArgumentException ছুঁড়ে দেয়।
Syntax:
public static EnumName valueOf(String name)Example:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } public class EnumExample { public static void main(String[] args) { Day day = Day.valueOf("MONDAY"); // Using valueOf() method System.out.println(day); // Output: MONDAY } }Output:
MONDAYNote: যদি আপনি একটি অশুদ্ধ Enum constant ব্যবহার করেন (যেমন
valueOf("HOLIDAY")), তবে এটিIllegalArgumentExceptionছুঁড়ে দিবে।ordinal() Method:
ordinal()মেথডটি একটি Enum কনস্ট্যান্টের অবস্থান রিটার্ন করে (অর্থাৎ, Enum তালিকার মধ্যে তার অবস্থান)।ordinal()রিটার্ন করে একটি 0-based index। অর্থাৎ প্রথম কনস্ট্যান্টের জন্য এটি 0, দ্বিতীয় কনস্ট্যান্টের জন্য এটি 1, এবং এর পরবর্তী কনস্ট্যান্টের জন্য সেরকমভাবে ইন্ডেক্স রিটার্ন হয়।
Syntax:
public int ordinal()Example:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } public class EnumExample { public static void main(String[] args) { Day day = Day.MONDAY; System.out.println("The ordinal value of " + day + " is: " + day.ordinal()); } }Output:
The ordinal value of MONDAY is: 0
Enum এর মাধ্যমে Constants এর ম্যানেজমেন্ট:
- Enum এর Advantages:
- Type Safety: Enum ব্যবহার করে কনস্ট্যান্টের একটি সীমিত সেট তৈরি করা যায়, যা অন্যান্য সাধারণ কনস্ট্যান্টের তুলনায় অনেক বেশি নিরাপদ।
- Easy to Maintain: Enum কনস্ট্যান্টগুলির মান আগেই নির্ধারিত থাকে, তাই কোডের মধ্যে কোথাও ভুল কনস্ট্যান্ট ব্যবহারের সম্ভাবনা কম থাকে।
- Readable Code: Enum কনস্ট্যান্টগুলি কোডকে আরও স্পষ্ট এবং পাঠযোগ্য করে তোলে, বিশেষ করে যখন এটি অনেক কনস্ট্যান্টের মধ্যে ব্যবহৃত হয়।
- Improved Performance: Enum কনস্ট্যান্ট গুলি ইনস্ট্যান্সের পরিবর্তে static ফাইনাল ভ্যালু হিসেবে থাকে, ফলে কর্মক্ষমতা উন্নত হয়।
Enum ব্যবহার করার উদাহরণ: যদি আপনি কোন নির্দিষ্ট দিনের জন্য কনস্ট্যান্ট ভ্যালু ব্যবহার করতে চান, তাহলে Enum ব্যবহার করা অনেক ভালো। উদাহরণস্বরূপ, সপ্তাহের দিনগুলির জন্য একটি Enum তৈরি করতে পারেন:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } public class EnumExample { public static void main(String[] args) { Day today = Day.MONDAY; switch (today) { case MONDAY: System.out.println("Start of the work week."); break; case FRIDAY: System.out.println("End of the work week."); break; default: System.out.println("Mid-week."); break; } } }Output:
Start of the work week.
- Enum Java-তে constants এর ব্যবস্থাপনা এবং type-safety নিশ্চিত করতে ব্যবহৃত হয়। এটি একটি শক্তিশালী এবং কার্যকর উপায় যা কনস্ট্যান্ট ভ্যালুগুলির ব্যবহারে সুসংগতি এবং নিরাপত্তা নিশ্চিত করে।
values(),valueOf(), এবংordinal()মেথডগুলো Enum-এর কনস্ট্যান্টগুলির সাথে কাজ করতে সহজ করে তোলে, এবং কনস্ট্যান্ট ম্যানেজমেন্ট আরও সহজ ও সুবিধাজনক করে দেয়।
Read more